Simulation #1

Data structure: \(O = (W, A, Z, Y)\)

  • U - exogenous variables
  • W - baseline covariate that is a measure of body condition
  • A - treatment level based on W, continuous between 0 and 5
  • Z - intermediate curve based on W and A
  • Y - outcome, indicator of an event ?

Underlying data generating process, \(P_{U,X}\)

  • Exogenous variables:
    • \(U_A \sim Normal(\mu=0, \sigma^2 = 1^2)\)
    • \(U_A \sim Normal(\mu=0, \sigma^2 = 2^2)\)
    • \(U_Z \sim Uniform(min = 0, max = 1)\)
    • \(U_Y \sim Uniform(min = 0, max = 1)\)
  • Structural equations F and endogenous variables:
    • \(W = U_W\)
    • \(A = bound(2 - 0.5W + U_A, min=0, max=5)\)
    • \(Z = \mathbf{I}[U_Z < expit(2-W-A)]\)
    • \(Y = \mathbf{I}[U_Y < expit(W + 5*A + Z - 0.5 * W * A - 8)]\)
##        W                   A                Z                Y         
##  Min.   :-3.507788   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:-0.667617   1st Qu.:0.5639   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median : 0.001434   Median :1.9834   Median :0.0000   Median :1.0000  
##  Mean   :-0.000198   Mean   :2.0947   Mean   :0.4967   Mean   :0.5958  
##  3rd Qu.: 0.660323   3rd Qu.:3.3522   3rd Qu.:1.0000   3rd Qu.:1.0000  
##  Max.   : 3.531910   Max.   :5.0000   Max.   :1.0000   Max.   :1.0000
## Summary of A given W < -1:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.325   2.711   2.660   4.099   5.000
## Summary of A given -1 < W <= 0:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.7848  2.1259  2.2182  3.4684  5.0000
## Summary of A given 0 < W <= 1:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.4076  1.8470  1.9644  3.2074  5.0000
## Summary of A given 1 < W:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.302   1.550   2.519   5.000

n = 200

CV HAL

results

## CV selected lambda (from one sample): 0.00669857527625325

1000 repetition

## The average of CV selected lambdas (from 1000 sample): 0.00805053386604685 The average of CV selected lambdas (from 1000 sample): 0.00805577329430703 The average of CV selected lambdas (from 1000 sample): 0.00805745619998476
## z=1:

## z=0:

Globally Undersmoothed HAL

results

## Undersmoothed lambda: 0.0015646006085061
##  which is 1 * lambda_CV

1000 repetition

## The average of unsersmoothed lambda (from 1000 sample): 0.00198207951272976
##  which is 1 * the average of 1000 lambda_CV The average of unsersmoothed lambda (from 1000 sample): 0.00198377327801413
##  which is 1 * the average of 1000 lambda_CV
## z=1:

## z=0:

Oevr a grid of lambda scalers

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                 grob
## 1 1 (2-3,2-3) arrange       gtable[layout]
## 2 2 (4-5,1-2) arrange       gtable[layout]
## 3 3 (4-5,3-4) arrange       gtable[layout]
## 4 4 (6-7,1-2) arrange       gtable[layout]
## 5 5 (6-7,3-4) arrange       gtable[layout]
## 6 6 (3-3,4-4) arrange    gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.3844]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                 grob
## 1 1 (2-3,2-3) arrange       gtable[layout]
## 2 2 (4-5,1-2) arrange       gtable[layout]
## 3 3 (4-5,3-4) arrange       gtable[layout]
## 4 4 (6-7,1-2) arrange       gtable[layout]
## 5 5 (6-7,3-4) arrange       gtable[layout]
## 6 6 (3-3,4-4) arrange    gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.4120]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                 grob
## 1 1 (2-3,2-3) arrange       gtable[layout]
## 2 2 (4-5,1-2) arrange       gtable[layout]
## 3 3 (4-5,3-4) arrange       gtable[layout]
## 4 4 (6-7,1-2) arrange       gtable[layout]
## 5 5 (6-7,3-4) arrange       gtable[layout]
## 6 6 (3-3,4-4) arrange    gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.4396]

n = 50

CV HAL

results

## CV selected lambda (from one sample): 0.0195155536662222

1000 repetition

## The average of CV selected lambdas (from 1000 sample): 0.0212969848400777 The average of CV selected lambdas (from 1000 sample): 0.0213398235684669 The average of CV selected lambdas (from 1000 sample): 0.0212988488932532 The average of CV selected lambdas (from 1000 sample): 0.0213307346613431
## z=1:

## z=0:

Globally Undersmoothed HAL

results

## Undersmoothed lambda: 0.00943173094359552
##  which is 1 * lambda_CV

1000 repetition

## The average of unsersmoothed lambda (from 1000 sample): 0.00552028249707928
##  which is 1 * the average of 1000 lambda_CV The average of unsersmoothed lambda (from 1000 sample): 0.00549945830564472
##  which is 1 * the average of 1000 lambda_CV The average of unsersmoothed lambda (from 1000 sample): 0.00551185563084549
##  which is 1 * the average of 1000 lambda_CV The average of unsersmoothed lambda (from 1000 sample): 0.00550421652997886
##  which is 1 * the average of 1000 lambda_CV
## z=1:

## z=0:

Oevr a grid of lambda scalers

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                 grob
## 1 1 (2-3,2-3) arrange       gtable[layout]
## 2 2 (4-5,1-2) arrange       gtable[layout]
## 3 3 (4-5,3-4) arrange       gtable[layout]
## 4 4 (6-7,1-2) arrange       gtable[layout]
## 5 5 (6-7,3-4) arrange       gtable[layout]
## 6 6 (3-3,4-4) arrange    gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.8162]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                 grob
## 1 1 (2-3,2-3) arrange       gtable[layout]
## 2 2 (4-5,1-2) arrange       gtable[layout]
## 3 3 (4-5,3-4) arrange       gtable[layout]
## 4 4 (6-7,1-2) arrange       gtable[layout]
## 5 5 (6-7,3-4) arrange       gtable[layout]
## 6 6 (3-3,4-4) arrange    gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.8438]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                 grob
## 1 1 (2-3,2-3) arrange       gtable[layout]
## 2 2 (4-5,1-2) arrange       gtable[layout]
## 3 3 (4-5,3-4) arrange       gtable[layout]
## 4 4 (6-7,1-2) arrange       gtable[layout]
## 5 5 (6-7,3-4) arrange       gtable[layout]
## 6 6 (3-3,4-4) arrange    gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.8714]

n = 500

CV HAL

results

## CV selected lambda (from one sample): 0.00304915463126771

1000 repetition

## The average of CV selected lambdas (from 1000 sample): 0.003778051893939 The average of CV selected lambdas (from 1000 sample): 0.00377959561096255
## z=1:

## z=0:

Globally Undersmoothed HAL

results

## Undersmoothed lambda: 0.000239285449803067
##  which is 1 * lambda_CV

1000 repetition

## The average of unsersmoothed lambda (from 1000 sample): 0.000976521442732073
##  which is 1 * the average of 1000 lambda_CV
## z=1:

## z=0:

Simulation 2

##        W                   A                Z                Y         
##  Min.   :-3.845320   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:-0.667969   1st Qu.:0.6041   1st Qu.:0.0000   1st Qu.:0.0000  
##  Median :-0.011089   Median :1.9688   Median :0.0000   Median :0.0000  
##  Mean   :-0.002372   Mean   :2.0967   Mean   :0.4956   Mean   :0.4335  
##  3rd Qu.: 0.673347   3rd Qu.:3.3664   3rd Qu.:1.0000   3rd Qu.:1.0000  
##  Max.   : 3.847768   Max.   :5.0000   Max.   :1.0000   Max.   :1.0000
## Summary of A given W < -1:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.378   2.682   2.670   4.053   5.000
## Summary of A given -1 < W <= 0:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.8273  2.1893  2.2600  3.5571  5.0000
## Summary of A given 0 < W <= 1:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.0000  0.4312  1.7657  1.9311  3.1612  5.0000
## Summary of A given 1 < W:
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.231   1.511   2.510   5.000

n = 200

CV HAL

results

## CV selected lambda (from one sample): 0.00342499231220454

1000 repetition

## The average of CV selected lambdas (from 1000 sample): 0.00388328921066168 The average of CV selected lambdas (from 1000 sample): 0.00387821237212883
## z=1:

## z=0:

Globally Undersmoothed HAL

results

## Undersmoothed lambda: 0.000799982807508477
##  which is 1 * lambda_CV

1000 repetition

## The average of unsersmoothed lambda (from 1000 sample): 0.00085245114733228
##  which is 1 * the average of 1000 lambda_CV The average of unsersmoothed lambda (from 1000 sample): 0.000851916105948073
##  which is 1 * the average of 1000 lambda_CV
## z=1:

## z=0:

Oevr a grid of lambda scalers

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.16031]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.16307]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.16583]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.16859]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.17135]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.17411]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.17687]

## TableGrob (7 x 4) "arrange": 7 grobs
##   z     cells    name                  grob
## 1 1 (2-3,2-3) arrange        gtable[layout]
## 2 2 (4-5,1-2) arrange        gtable[layout]
## 3 3 (4-5,3-4) arrange        gtable[layout]
## 4 4 (6-7,1-2) arrange        gtable[layout]
## 5 5 (6-7,3-4) arrange        gtable[layout]
## 6 6 (3-3,4-4) arrange     gtable[guide-box]
## 7 7 (1-1,1-4) arrange text[GRID.text.17963]

n = 50

CV HAL

results

## CV selected lambda (from one sample): 0.0198714531342128

1000 repetition

## The average of CV selected lambdas (from 1000 sample): 0.0196135234410873 The average of CV selected lambdas (from 1000 sample): 0.0195494261017948 The average of CV selected lambdas (from 1000 sample): 0.0195701963312569
## z=1:

## z=0:

Globally Undersmoothed HAL

results

## Undersmoothed lambda: 0.00943173090927282
##  which is 1 * lambda_CV

1000 repetition

Since the sample size n=50 could be too small for undersmoothing, simulations returned NA as the unsersmoothed lambda for many rounds. So I just skipped this part.

n = 500

CV HAL

results

## CV selected lambda (from one sample): 0.0016481890921567

1000 repetition

## The average of CV selected lambdas (from 1000 sample): 0.00184274700569968
## z=1:

## z=0:

Globally Undersmoothed HAL

results

## Undersmoothed lambda: 0.000267629110962862
##  which is 1 * lambda_CV

1000 repetition

## The average of unsersmoothed lambda (from 1000 sample): 0.000393879557187377
##  which is 1 * the average of 1000 lambda_CV
## z=1:

## z=0: